//Eventos e inicializaciones en pacientes_pacientes.js
var pacienteModel = undefined;
var pacienteTableUI = undefined;
var pacienteDetailUI = undefined;

//Eventos e inicializacion en pacientes_evaluaciones.js
var evaluacionesModel = undefined;
var evaluacionesTableUI = undefined;
var evaluacionesDetailUI = undefined;

//Eventos e inicializaciones en pacientes_riesgos.js
var riesgosModel = undefined;
var riesgosDetailUI = undefined;

//Eventos e inicializaciones en evaluaciones_clinicas.js
var evalClinicasModel = undefined;
var evalClinicasDetailUI = undefined;

//Eventos e inicializaciones en formula_desarrollada.js
var formulasDesarrolladasModel = undefined;
var formulasDesarrolladasDetailUI = undefined;

//Eventos e inicializaciones en pacientes_tolerancia.js
var toleranciaModel     = undefined;
var toleranciaDetailUI  = undefined;

//Eventos e inicializaciones en pacientes_tolerancia.js
var alimentacionHabitualModel     = undefined;
var alimentacionHabitualDetailUI  = undefined;


var pendingLoads = 0;

function startLoad(){
    pendingLoads++;
    /*$("#datos_paciente").find("input").each(function(){
        $(this).attr("disabled", "disabled");
    });

    $("#datos_paciente").find("select").each(function(){
        $(this).attr("disabled", "disabled");
    });*/
}

function endLoad(){
    pendingLoads--;
    
    if(pendingLoads < 0){
        pendingLoads = 0;
    }

    /*if(pendingLoads == 0){
        $("#datos_paciente").find("input").each(function(){
            $(this).removeAttr("disabled");
        });

        $("#datos_paciente").find("select").each(function(){
            $(this).removeAttr("disabled");
        });
    }*/
}

function initPacientes(){
    pacienteModel = new Model(
            webRoot,
            "Paciente",
            "id",
            "Paciente",
            "apellido",
            "asc",
            10,
            0,
            0,
            "Pacientes/getListData",
            "Pacientes/getDetailData",
            "Pacientes/save"
      );

      /*pacienteModel.addColumn("Paciente", "nombre", "string", 3, false);
      pacienteModel.addColumn("Paciente", "apellido", "string", 3, false);
      pacienteModel.addColumn("Paciente", "sexo", "string", 1, false);
      pacienteModel.addColumn("Paciente", "fecha_nacimiento", "date", 10, false);
      pacienteModel.addColumn("Paciente", "direccion", "string", 4, true);
      pacienteModel.addColumn("Paciente", "telefono", "string", 4, true);
      pacienteModel.addColumn("Paciente", "mail", "email", 4, true);
      pacienteModel.addColumn("Paciente", "profesion", "string", 3, false);
      pacienteModel.addColumn("Paciente", "derivacion", "string", 3, false);*/
          
      evaluacionesModel = new Model(
            webRoot,
            "Evaluacion",
            "id",
            "Evaluacion",
            "fecha",
            "desc",
            10,
            0,
            0,
            "Evaluaciones/getListData",
            "Evaluaciones/getDetailData",
            "Evaluaciones/save"
      );

      /*evaluacionesModel.addColumn("Evaluacion", "paciente_id", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "fecha", "date", 10, false);
      evaluacionesModel.addColumn("Evaluacion", "peso", "number", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "talla", "number", 1, true);
      evaluacionesModel.addColumn("Evaluacion", "perimetro_cintura", "number", 1, true);
      evaluacionesModel.addColumn("Evaluacion", "circ_cuello", "number", 1, true);
      evaluacionesModel.addColumn("Evaluacion", "circ_cadera", "number", 1, true);
      evaluacionesModel.addColumn("Evaluacion", "metabolismo", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "af_metabolico", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "embarazo", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "lactancia", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "directo_metabolico", "string", 1, false);
      evaluacionesModel.addColumn("Evaluacion", "estres", "string", 1, false);*/

      riesgosModel = new Model(
            webRoot,
            "ValoracionRiesgoPaciente",
            "id",
            "ValoracionRiesgoPaciente",
            "fecha",
            "desc",
            10,
            0,
            0,
            "ValoracionRiesgoPacientes/getListData",
            "ValoracionRiesgoPacientes/getDetailData",
            "ValoracionRiesgoPacientes/save"
      );

      evalClinicasModel = new Model(
            webRoot,
            "ValoracionEvalClinicaPaciente",
            "id",
            "ValoracionEvalClinicaPaciente",
            "fecha",
            "desc",
            10,
            0,
            0,
            "ValoracionEvalClinicaPacientes/getListData",
            "ValoracionEvalClinicaPacientes/getDetailData",
            "ValoracionEvalClinicaPacientes/save"
      );

      formulasDesarrolladasModel = new Model(
            webRoot,
            "FormulaDesarrollada",
            "id",
            "FormulaDesarrollada",
            "fecha",
            "desc",
            10,
            0,
            0,
            "FormulasDesarrolladas/getListData",
            "FormulasDesarrolladas/getDetailData",
            "FormulasDesarrolladas/save"
      );

      toleranciaModel = new Model(
            webRoot,
            "ToleranciaAlimentaria",
            "id",
            "ToleranciaAlimentaria",
            "id",
            "desc",
            10,
            0,
            0,
            "tolerancia/getListData",
            "tolerancia/getDetailData",
            "tolerancia/save"
      );

      alimentacionHabitualModel = new Model(
            webRoot,
            "AlimentacionHabitual",
            "id",
            "AlimentacionHabitual",
            "id",
            "desc",
            10,
            0,
            0,
            "alimentacionHabitual/getListData",
            "alimentacionHabitual/getDetailData",
            "alimentacionHabitual/save"
      );

      alimentacionHabitualModel.addColumn("AlimentacionHabitual", "paciente_id", "string", 1, false);


      initPacienteTableUI();
      pacienteModel.load();

      $("#datos_paciente").tabs({select: onTabSelect, load: onTabLoad});

      evaluacionesModel.addOnLoadStartListener(startLoad, {});
      evaluacionesModel.addOnRowLoadStartListener(startLoad, {});
      pacienteModel.addOnLoadStartListener(startLoad, {});
      pacienteModel.addOnRowLoadStartListener(startLoad, {});
      riesgosModel.addOnLoadStartListener(startLoad, {});
      riesgosModel.addOnRowLoadStartListener(startLoad, {});
      evalClinicasModel.addOnLoadStartListener(startLoad, {});
      evalClinicasModel.addOnRowLoadStartListener(startLoad, {});
      formulasDesarrolladasModel.addOnLoadStartListener(startLoad, {});
      formulasDesarrolladasModel.addOnRowLoadStartListener(startLoad, {});
      toleranciaModel.addOnLoadStartListener(startLoad, {});
      toleranciaModel.addOnRowLoadStartListener(startLoad, {});
      alimentacionHabitualModel.addOnLoadStartListener(startLoad, {});
      alimentacionHabitualModel.addOnRowLoadStartListener(startLoad, {});



      evaluacionesModel.addLoadListener(endLoad, {});
      evaluacionesModel.addOnRowLoadListener(endLoad, {});
      pacienteModel.addLoadListener(endLoad, {});
      pacienteModel.addOnRowLoadListener(endLoad, {});
      riesgosModel.addLoadListener(endLoad, {});
      riesgosModel.addOnRowLoadListener(endLoad, {});
      evalClinicasModel.addLoadListener(endLoad, {});
      evalClinicasModel.addOnRowLoadListener(endLoad, {});
      formulasDesarrolladasModel.addLoadListener(endLoad, {});
      formulasDesarrolladasModel.addOnRowLoadListener(endLoad, {});
      toleranciaModel.addLoadListener(endLoad, {});
      toleranciaModel.addOnRowLoadListener(endLoad, {});
      alimentacionHabitualModel.addLoadListener(endLoad, {});
      alimentacionHabitualModel.addOnRowLoadListener(endLoad, {});


}

function onTabSelect(data, ui){
    if(ui.index > 0){
        if(pacienteModel.idColumn.value == undefined || 
           pacienteModel.idColumn.value == 0 ||
           pacienteModel.idColumn.value == ""){
         
            alert("Debe seleccionar un Paciente");
            return false;
        }
    }
    $(".ui-tabs-panel").each(function(){
        var id = $(this).attr("id");
        document.getElementById(id).innerHTML = "";
    });
    return true;
}

function crearDialogo(){
    $('#garf_container').dialog({
        autoOpen: false
    });
    $('#imc_container').dialog({
        autoOpen: false
    });
}

function onTabLoad(event, ui){
    if(ui.index == 0){
        onPacientesLoad();
    }
    if(ui.index == 1){
        onEvaluacionesLoad();
    }
    if(ui.index == 2){
        onRiesgosLoad();
    }
    if(ui.index == 3){
        onEvalClinicaLoad();
    }
    if(ui.index == 4){
        onFormulaDesarrolladaLoad();
    }
    if(ui.index == 5){
        onToleranciaLoad();
    }
    if(ui.index == 6){
        onAlimentacionHabitualLoad();
    }
}